package tech.aistar.day10;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * 本类用来演示: 集合的删除
 *
 * @author: success
 * @date: 2021/3/19 1:47 下午
 */
public class ArrayRemoveDemo {
    public static void main(String[] args) {

        List<Book> list = new ArrayList<>();

        Book b1 = new Book(5,"1005","西游记",600.0d);
        Book b2 = new Book(6,"1007","西游记",600.0d);
        Book b3 = new Book(7,"1008","西游记",600.0d);

        list.add(b1);
        list.add(b2);
        list.add(b3);

        //获取集合中的元素的个数
        System.out.println(list.size());

        //根据下标来获取集合中的元素
        //因为是有序的集合 - 通过下标进行获取.
        Book b = list.get(1);
        System.out.println(b);

        //根据索引进行删除
        //list.remove(1);

        //根据对象进行删除
//        Book b4 = new Book(7,"1008","西游记2",900.0d);
//        System.out.println(b3.equals(b4));//true
//        list.remove(b4);//关注的是equals和hashcode->返回true,认为是同一个对象

        list.remove(b2);


        System.out.println("=====");

        //1. 集合的遍历方式
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

        System.out.println("===迭代器==");

        //2. 集合的迭代器
        //1. 获取迭代器对象
        Iterator<Book> iter = list.iterator();

        while(iter.hasNext()){//迭代器中如果仍有对象可被迭代,返回true
            //获取元素
            Book bk = iter.next();
            System.out.println(bk);
        }

        //2. 第三种迭代方式 - jdk5.x提供了foreach语法 - 增强for循环
        //增强for循环是一个只读的循环 - 并且增强for循环的本质就是迭代器的方式.
//        for (Book book : list) {
//            System.out.println(book);
//        }

    }
}
